public abstract class FantasmaStateMachine extends Actor {

	private State currentState;
	private State estadoAnterior;

	
	public FantasmaStateMachine(State initialState , Posicion actual ) {
		super( actual );
		currentState = initialState;
		estadoAnterior = initialState;
	}

	public State getCurrentState() {
		return currentState;
	}

	public void setCurrentState(State currentState) {
		this.currentState = currentState;
	}

	public void cambiarEstadoSiguiente(Evento evento) {
		this.setEstadoAnterior(this.currentState);
		State estadosgte = this.getCurrentState().next(evento);
		this.setCurrentState(estadosgte);
	}

	public void cambiarEstadoAnterior() {
		this.currentState = this.estadoAnterior;
		this.estadoAnterior = null;
	}

	public State getEstadoAnterior() {
		return estadoAnterior;
	}

	public void setEstadoAnterior(State estadoAnterior) {
		this.estadoAnterior = estadoAnterior;
	}
	
	public abstract void incrementarVision();
}
